package com.shujia;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;

/**
 * 需求：
 *      当前连接信息及驱动信息由于后期系统变动，可能会要求更换数据库，并且数据库更换不能重新开发
 *
 * 设计：
 *      将所有的配置信息保存至文件中，通过读取文件，加载连接信息，保证后期使用时，可以更改
 *      需要放置配置文件的信息：
 *          1.URL
 *          2.user
 *          3.passwd
 *          4.driver
 *
 */
public class Code3MysqlForProperties {
    public static void main(String[] args) throws IOException, SQLException {
        // 1.注册驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("当前给定类路径不存在...,请重新配置");
            e.printStackTrace();
        }
        // 2.读取配置信息
        // JAVA中专门用来读取配置文件的类，
        Properties properties = new Properties();
        properties.load(new FileReader("source/jdbc.properties"));
        String url = properties.getProperty("url");
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String driver = properties.getProperty("driver");


        // 3.获取连接
        Connection connection = DriverManager.getConnection(
                url,
                user,
                password
        );

        Statement statement = connection.createStatement();

        ResultSet resultSet = statement.executeQuery("select * from dept");

        while (resultSet.next()){
            // 下标是从1开始读取
            String DEPTNO = resultSet.getString(1);
            String DNAME = resultSet.getString(2);
            String LOC = resultSet.getString(3);
            System.out.println(DEPTNO+"\t"+DNAME+"\t"+LOC);
        }
        statement.close();
        connection.close();

    }
}
